\subsection{Pokemon}
\begin{lstlisting}
Object subclass: #Pokemon
	instanceVariableNames: 'nivel nombre energia'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'PLP-TP-POO'
\end{lstlisting}

\subsubsection{Mensajes de Clase}
\textbf{ataqueBase}
\begin{lstlisting}
	self subclassResponsibility 
\end{lstlisting}

\bigskip

\textbf{defensaBase}
\begin{lstlisting}
	self subclassResponsibility 
\end{lstlisting}

\bigskip

\textbf{energiaBase}
\begin{lstlisting}
	self subclassResponsibility 
\end{lstlisting}

\bigskip

\textbf{new:} \textit{unNombre}
\begin{lstlisting}
	^self new initialize: unNombre 
\end{lstlisting}

\bigskip

\textbf{nuevaEspecie:} \textit{unNombreEspecie}\\
\textbf{conTipo:} \textit{unNombreTipo}\\ 
\textbf{energiaBase:} \textit{unaEnergiaBase}\\
\textbf{ataqueBase:} \textit{unAtaqueBase}\\
\textbf{defensaBase:} \textit{unaDefensaBase}
\begin{lstlisting}
	^(CreadorClaseEspeciePokemon 
		nuevaEspecieLLamada: unNombreEspecie  
		conTipo: unNombreTipo  
		energiaBase: unaEnergiaBase  
		ataqueBase: unAtaqueBase 
		defensaBase: unaDefensaBase) crear
\end{lstlisting}

\bigskip

\textbf{tipo}
\begin{lstlisting}
	self subclassResponsibility 
\end{lstlisting}

\subsubsection{Mensajes de Instancia}
\textbf{atacarA:} \textit{otroPokemon} \textbf{conPoder:} \textit{unPoder} \textbf{deTipo:} \textit{unTipoDeAtaque}
\begin{lstlisting}
	"Se delega en otro objeto que se encargue de desarrollar la batalla"
	
	(BatallaDePokemones donde: self atacaA: otroPokemon con: unPoder usando: unTipoDeAtaque) pelear 
\end{lstlisting}

\bigskip

\textbf{ataque}
\begin{lstlisting}
	 ^self energiaSegun: self ataqueBase usando: 5
\end{lstlisting}

\bigskip

\textbf{ataqueBase}
\begin{lstlisting}
	^self class ataqueBase 
\end{lstlisting}

\bigskip

\textbf{curar:} \textit{unValor}
\begin{lstlisting}
	^energia := (self energiaTotal min: energia + unValor )
\end{lstlisting}

\bigskip

\textbf{defensa}
\begin{lstlisting}
	 ^self energiaSegun: self defensaBase usando: 5
\end{lstlisting}

\bigskip

\textbf{defensaBase}
\begin{lstlisting}
	^self class defensaBase 
\end{lstlisting}

\bigskip

\textbf{energia}
\begin{lstlisting}
	^energia
\end{lstlisting}

\bigskip

\textbf{energiaBase}
\begin{lstlisting}
	^self class energiaBase 
\end{lstlisting}

\bigskip

\textbf{energia:} \textit{unValorBase} \textbf{usando:} \textit{unDelta}
\begin{lstlisting}
	^(FormulaEnergia para: unValorBase y: nivel usando: unDelta ) value
\end{lstlisting}

\bigskip

\textbf{energiaTotal}
\begin{lstlisting}
	 ^self energiaSegun: self energiaBase usando: 10 + nivel 
\end{lstlisting}

\bigskip

\textbf{estaDesmayado}
\begin{lstlisting}
	^ self energia = 0.
\end{lstlisting}

\bigskip

\textbf{herir:} \textit{unValor}
\begin{lstlisting}
	energia := (0 max: (energia - unValor))
\end{lstlisting}

\bigskip

\textbf{initialize:} \textit{unNombre}
\begin{lstlisting}
	nombre := unNombre.
	nivel := 1.
	energia := self energiaTotal 
\end{lstlisting}

\bigskip

\textbf{nivel}
\begin{lstlisting}
	^nivel
\end{lstlisting}

\bigskip

\textbf{nombre}
\begin{lstlisting}
	^nombre
\end{lstlisting}

\bigskip

\textbf{subirDeNivel}
\begin{lstlisting}
	^nivel := 100 min: (nivel + 1)
\end{lstlisting}

\bigskip

\textbf{tipo}
\begin{lstlisting}
	^self class tipo
\end{lstlisting}